package com.wen.proxyPattern;

/**、
 * 代理主题角色  也被叫做 委托类、代理类。他是负责对真实角色的应用,把所有抽象主题类定义的方法限制委托给真实主题角色实现,并且在真实主题
 * 处理完毕后做预处理和善后的工作 。
 * 简单的可以理解为  我在真实的业务处理的基础上加了别的逻辑  是进行了增强
 */
public class Proxy implements Subject {

    private Subject subject;

    public Proxy(Subject subject) {
        this.subject = subject;
    }

    @Override
    public void doSomething() {
        System.out.println("我正在代理的对象为" + subject);
        before();
        subject.doSomething();
        after();
    }

    //预处理
    public void before() {
        System.out.println("正在进行预处理");
    }

    //善后处理
    public void after() {
        System.out.println("正在进行善后处理");
    }
}
